package com.eastfair.venueservice.vo;

import com.eastfair.annotation.annotation.vo.VoInfo;
import com.eastfair.annotation.model.BaseVoGroupClass;
import com.eastfair.vo.BaseVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 智慧物流订单详情
 *
 * @author Du Xiaobo
 * @date 2023/5/8 11:34
 */
@Data
@ApiModel(value = "LogisticsOrderVo", description = "物流订单信息")
public class LogisticsOrderVo extends BaseVO implements Serializable {

    private static final long serialVersionUID = -3670766805710508027L;

    @ApiModelProperty(value = "主键")
    @VoInfo(groups = {BaseVoGroupClass.all.class})
    private Long id;

    /**
     * 是否启用（确认状态）：1是 已确认；0否 未确认
     */
    @ApiModelProperty(value = "是否启用（确认状态）：1是 已确认；0否 未确认")
    private Integer isEnabled;
    /**
     * 是否删除：1是；0否
     */
    @ApiModelProperty(value = "是否删除：1是；0否")
    private Integer isDeleted;
    /**
     * 项目id
     */
    @ApiModelProperty(value = "项目id")
    private Long projectId;
    /**
     * 子系统id
     */
    @ApiModelProperty(value = "子系统id")
    private Long subsystemId;
    /**
     * 租户id
     */
    @ApiModelProperty(value = "租户id")
    private Long tenantId;

    /**
     * 主体类型
     */
    @ApiModelProperty(value = "主体类型")
    private String principalType;

    /**
     * 企业名称
     */
    @ApiModelProperty(value = "企业名称")
    private String enterpriseName;

    /**
     * 社会统一代码
     */
    @ApiModelProperty(value = "社会统一代码")
    private String socialUnifiedCode;

    /**
     * 展会id
     */
    @ApiModelProperty(value = "展会id")
    private Long exhibitionId;

    /**
     * 展会名称
     */
    @ApiModelProperty(value = "展会名称")
    private String exhibitionName;

    /**
     * 展厅号
     */
    @ApiModelProperty(value = "展厅号")
    private String exhibitionHallNo;

    /**
     * 展位号
     */
    @ApiModelProperty(value = "展位号")
    private String boothNo;

    /**
     * 联系人
     */
    @ApiModelProperty(value = "联系人")
    private String contact;

    /**
     * 联系方式
     */
    @ApiModelProperty(value = "联系方式")
    private String telephone;

    /**
     * 支付方式
     */
    @ApiModelProperty(value = "支付方式")
    private String payType;

    /**
     * 付款时间
     */
    @ApiModelProperty(value = "付款时间")
    private LocalDateTime payTime;

    /**
     * 订单金额
     */
    @ApiModelProperty(value = "订单金额")
    private BigDecimal amount;

    /**
     * 实付金额
     */
    @ApiModelProperty(value = "实付金额")
    private BigDecimal payedAmount;

    /**
     * 优惠金额
     */
    @ApiModelProperty(value = "优惠金额")
    private BigDecimal discountAmount;

    /**
     * 服务合计金额
     */
    @ApiModelProperty(value = "服务合计金额")
    private BigDecimal serviceTotalAmount;

    /**
     * 备注信息
     */
    @ApiModelProperty(value = "备注信息")
    private String remarks;

    /**
     * 订单编号
     */
    @ApiModelProperty(value = "订单编号")
    private String orderNum;

    /**
     * 下单时间
     */
    @ApiModelProperty(value = "下单时间")
    private LocalDateTime submitTime;

    /**
     * 订单类型
     */
    @ApiModelProperty(value = "订单类型")
    private String orderType;

    /**
     * 付款状态
     */
    @ApiModelProperty(value = "付款状态")
    private String payStatus;

    /**
     * 开票状态
     */
    @ApiModelProperty(value = "开票状态")
    private String invoiceStatus;

    /**
     * 收款单位
     */
    @ApiModelProperty(value = "收款单位")
    private String payee;

    /**
     * 明细
     */
    @ApiModelProperty(value = "明细")
    private Object details;
}
